Python実践編|資産シミュレーター開発③ 〜入力チェックを関数でまとめた〜

目次

はじめに

今回は、資産シミュレーター開発の第一歩として、入力チェックのプログラムを作成しました。

複利計算を行う前に、ユーザーが入力した値が正しいか確認する必要があります。

例えば、文字が入力されたり、マイナスの数値が入力されたりすると、正しく計算できません。

そのため、今回は入力チェックの処理を実装していきます。


最初に作成したコード

まずは、投資資産額と想定利回りをそれぞれチェックするコードを書きました。

print('hello')

while True:
    try:
        a = int(input('投資資産額を入力してください>'))
        if a > 0:
            break
        else:
            print('0より大きい数字を入力してください')
    except ValueError:
        print('数字を入力してください')

while True:
    try:
        b = float(input('想定利回りを入力してください>'))
        if b > 0:
            break
        else:
            print('0より大きい数字を入力してください')
    except ValueError:
        print('数字を入力してください')

コードの解説

while True

入力が正しくなるまで、同じ処理を繰り返します。

breakが実行されるまでループが続きます。


try と except

try:

数字として処理できるか試します。

もし文字などが入力されるとエラーになります。

その場合は、

except ValueError:

が実行され、

「数字を入力してください」

と表示して、再び入力を求めます。


if文

if a > 0:

入力された値が0より大きいか確認しています。

資産額や利回りはマイナスでは困るため、この条件を追加しました。

条件を満たせば、

break

でループを終了します。


同じ処理を書いていることに気付いた

コードを書いていると、

「投資資産額」と「想定利回り」で、ほとんど同じ処理を書いていることに気付きました。

Pythonでは、このような繰り返し処理は関数にまとめることができます。

そこで、defを使って書き直してみました。


関数を使って改善したコード

def positive_number(message):
    while True:
        try:
            value = float(input(message))
            if value > 0:
                return value
            else:
                print('0より大きい数値を入力してください')
        except ValueError:
            print('数字を入力してください')

a = positive_number('投資資産額を入力してください>')
b = positive_number('想定利回りを入力してください>')

コードの解説

def

def positive_number(message):

入力チェックの処理を一つの関数にまとめています。

引数のmessageを変更するだけで、さまざまな入力画面に利用できます。


return

return value

正しい数値が入力されたら、その値を返します。

これにより、

a = positive_number(...)

のように結果を変数へ代入できます。


関数を呼び出す

a = positive_number('投資資産額を入力してください>')

ここでは「投資資産額」の入力を行います。

続いて、

b = positive_number('想定利回りを入力してください>')

では、同じ関数を使って利回りを入力しています。

同じ処理を何度も書く必要がなくなり、コードがとてもシンプルになりました。


今回学んだこと

今回のプログラムでは、次の内容を実践できました。

  • whileで繰り返し処理を行う
  • tryexceptでエラーを処理する
  • ifで条件を判定する
  • defで同じ処理を関数にまとめる
  • returnで値を返す

実際にプログラムを書いてみると、「関数はこういう場面で使うのか」と理解が深まりました。


次回予告

今回は入力チェックのプログラムを作成しました。

次回は、いよいよ複利計算のプログラムを作成します。

入力した資産額や利回りを使って、将来の資産額を計算していきます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

FIREを目指しながら、投資・プログラミング・家庭菜園・資格勉強に取り組んでいます。試行錯誤しながら積み上げる日々を記録するブログです。

コメント

コメントする

目次